Skip to content

ci(hypatia): make self-scan resilient to upstream outages#32

Merged
hyperpolymath merged 3 commits into
mainfrom
claude/fix-echo-types-pr43-rZNvx
May 15, 2026
Merged

ci(hypatia): make self-scan resilient to upstream outages#32
hyperpolymath merged 3 commits into
mainfrom
claude/fix-echo-types-pr43-rZNvx

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Ports the two-failure-class resilience policy from
hyperpolymath/echo-types#43
into burble's hypatia-scan.yml, applied expansively.

burble's Hypatia self-scan had the same fragility echo-types #43 fixed: a
flake in upstream infrastructure (BEAM provisioning, cloning
hyperpolymath/hypatia, building the scanner, cloning gitbot-fleet)
would fail the job and block otherwise-healthy PRs, even though the scan
is meant to be non-gating.

Two failure classes, deliberately distinct

  • Class 1 — external infrastructure (setup-beam, hypatia clone,
    mix deps.get/escript.build, gitbot-fleet clone): now degrades to a
    non-gating skip with a ::warning:: and a job-summary note. An
    upstream Hypatia/BEAM outage can no longer block unrelated PRs.
  • Class 2 — scan findings (produced once the scanner runs against
    this repo): still surfaced loudly (job summary, artifact, fleet
    submission, PR comment) and remains fix-forward / never hard-gated,
    exactly as before.

Changes

  • setup-beam: continue-on-error: true + downstream outcome check
  • Clone + build consolidated into one tolerant Provision Hypatia
    scanner
    step exposing steps.scanner.outputs.ready
  • All downstream steps gated on steps.scanner.outputs.ready == 'true'
  • New Note skipped scan step writes a non-gating explanation to the
    job summary for class-1 events
  • Expansively beyond #43: scanner runtime errors / malformed JSON and
    gitbot-fleet clone failures also degrade to non-gating skips instead of
    red builds; shallow clones for speed
  • Two-failure-class policy documented in the workflow header

Net effect: a Hypatia outage can never block a PR; a Hypatia finding
never silently disappears.

Test plan

  • yaml.safe_load parses the workflow cleanly
  • CI: trigger on this PR — verify the scan runs green and findings
    surface normally when upstream is healthy
  • (Observational) On a future upstream outage, confirm the job exits
    green with the "Hypatia Scan: skipped (non-gating)" summary

https://claude.ai/code/session_01SkqcQQaCVXNBT8eCQiwb3v


Generated by Claude Code

claude added 2 commits May 15, 2026 14:44
Ports the two-failure-class policy from hyperpolymath/echo-types#43 into
burble's Hypatia self-scan, expansively.

Class 1 (external infrastructure): setup-beam, cloning hyperpolymath/
hypatia, mix deps.get/escript.build, and the gitbot-fleet clone now
degrade to a non-gating skip with a warning + job-summary note instead
of failing the job. An upstream Hypatia/BEAM outage can no longer block
unrelated PRs.

Class 2 (scan findings): findings are still surfaced loudly (summary,
artifact, fleet submission, PR comment) and remain fix-forward / never
hard-gated. Scanner runtime errors and malformed JSON also degrade to a
non-gating skip rather than a red build.

- setup-beam: continue-on-error + outcome check
- consolidated clone+build into one tolerant "Provision Hypatia
  scanner" step exposing steps.scanner.outputs.ready
- all downstream steps gated on ready == 'true'
- added "Note skipped scan" summary step for class-1 events
- documented the policy in the workflow header

https://claude.ai/code/session_01SkqcQQaCVXNBT8eCQiwb3v
…-pr43-rZNvx

# Conflicts:
#	.github/workflows/hypatia-scan.yml
@hyperpolymath hyperpolymath marked this pull request as ready for review May 15, 2026 18:44
…-pr43-rZNvx

# Conflicts:
#	.github/workflows/hypatia-scan.yml
@hyperpolymath hyperpolymath merged commit 79e03b7 into main May 15, 2026
24 checks passed
@hyperpolymath hyperpolymath deleted the claude/fix-echo-types-pr43-rZNvx branch May 15, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants